Design an App with Application Loading Status

General

Criteria Meet Specification

Code compiles and runs without errors.

The app should b cloned from Github, opened in local Android Studio and run on a device

Custom View

Criteria Meet Specification

Customize and display of information using canvas with desired color and style

  • A custom button is created by extending View and custom attributes like background and text colors, etc are assigned to it.
  • At least 2 custom attributes like background and text colors, etc are assigned to the button.
    • Text and background are drawn using canvas

Animate UI elements with property animations to provide users with visual feedback in an Android app

The custom button properties like background, text and additional circle are animated by changing the width, text, and color

Notifications

Criteria Meet Specification

Send contextual messages using notifications to keep users informed

At least 2 types of contextual messages are displayed to the user: toast and notification

The toast is displayed inside the app

The notification is created and displayed in the status bar

Add custom functionality to the notifications

A button is added to the notification which opens in a separate screen and custom values are passed to it

MotionLayout

Criteria Meet Specification

Use declarative XML with MotionLayout to coordinate animations across multiple views

MotionLayout is used to enhance the user experience when switching activities

Tips to make your project standout:

  1. Handle the animation if downloading/uploading takes a longer or shorter time than animation in the custom button [We don’t know how fast is the download, so once it’s complete make a function that cancels current animation and starts it over with different duration]
  2. Add an additional view(EditText) in MainActivity where users can enter custom URLs for downloading/uploading files [Make sure to check if the inputted value is a valid url]
  3. Open the downloaded file and display the information to the user on DetailsActivity
  4. Customize notification UI based on the status of the download/upload (progress, fail, success)